<?php

class GabineteBN {

	public static function obtenerPorPK($codGabinete, $codItem, $tipoItem){
	
		$entity = GabinetePeer::retrieveByPK($codGabinete, $codItem, $tipoItem);	
	
		return $entity;
	
	}
	
	// recibe $mov, representa un movimiento de Ingreso
	public static function registraSalida(MovimientosGabinete $mov) {
		
		$entity = self::obtenerPorPK($mov->getCodGabinete(), $mov->getCodItem(), $mov->getTipoItem());
		
		$entity->setEnGabinete("0");
		$entity->setFechaUltimaSalida($mov->getFechaMovimiento());
			
		$resultado = $entity->save();
		
		return $resultado;
	}
	
	// recibe $mov, representa un movimiento de Ingreso
	public static function registraEntrada(MovimientosGabinete $mov) {
	
		$entity = self::obtenerPorPK($mov->getCodGabinete(), $mov->getCodItem(), $mov->getTipoItem());

		// verificar si existe en gabinete
		if(!isset($entity)) {
			$entity = new Gabinete();
			$entity->setCodGabinete($mov->getCodGabinete());
			$entity->setCodItem($mov->getCodItem());
			$entity->setTipoItem($mov->getTipoItem());
			$entity->setFechaEntrada($mov->getFechaMovimiento());
		}
	
		$entity->setUbicacion($mov->getDestino());
		$entity->setEnGabinete("1");
		$entity->setEstado("1");
			
		$resultado = $entity->save();
	
		return $resultado;
	}	
	
	public function actualizarMovimiento( MovimientosGabinete $entity) {

		$resultado = $entity->save();

		return 1;		
	}
	
	public function eliminarMovimiento($codMovimiento) {
		
	}
	
	public function ultimoGabineteItem($tipoItem, $codItem) {
		$criteria = new Criteria(GabinetePeer::DATABASE_NAME);
		$criteria->add(GabinetePeer::COD_ITEM, $codItem);
		$criteria->add(GabinetePeer::TIPO_ITEM, $tipoItem);
		$criteria->addDescendingOrderByColumn(GabinetePeer::FECHA_ENTRADA);
		
		$aObj = GabinetePeer::doSelect($criteria);
		
		if($aObj) {
			return $aObj[0];	
		}
		
		return false;
	}
	
}
?>